A telecommunications switch is a network device that provides a common connection point for other network devices, such as other switches (local, tandem, and/or point of presence switches), routers, clients, and servers, for example. The switch transmits and receives packets of information (packets), such as cells, frames, and/or datagrams, for example, that are transferred between the other network devices connected to the switch. The switch, in response to receiving a packet through an input port, reads a destination address from the packet and then forwards the packet to an output port associated with the destination address.
Typically, to determine if there are packets at an input port waiting to be transferred to an output port, a polling engine, such as a processor, in the switch periodically polls (reads) each input port. Further, the polling engine also periodically polls each output port to determine if there is space available to receive packets waiting at the input ports. A typical method of polling ports in a telecommunication switch involves using two entry tables stored in a memory. One table is an active table and the other table is an update table. Both the active table and the update table include channel numbers that correspond to the ports of the switch that the polling engine polls. The rate at which the polling engine polls a particular port (i.e., channel rate) is determined by the number of times the particular port's corresponding channel number appears in the active and update tables. The polling engine (processor) sequentially reads through the active table and polls each port in the order that each port's corresponding channel number appears in the active table. Enabling or disabling a particular port, or changing a particular port's channel rate involves the polling engine writing to every location in the update table that the particular port's corresponding channel number appears. After the polling engine updates the update table, (e.g., rate change, port enable, or port disable) the update table becomes the active table and the former active table becomes the new update table. The polling engine then sequentially reads each port's corresponding channel number from the new active table. The polling engine then polls each port in the order that each port's corresponding channel number appears in the new active table. If none of the ports are updated, the polling engine continues to read from the currently active table.